8 Deep Learning

Thibaut FABACHER

GMRC

TD

   metrics <-function(prediction,vrai){
    conf_matrix<- table(prediction ,vrai)
    # Calculating performance metrics
    TP <- conf_matrix[2, 2]
    TN <- conf_matrix[1, 1]
    FP <- conf_matrix[2, 1]
    FN <- conf_matrix[1, 2]
        precision <- TP / (TP + FP)
    recall <- TP / (TP + FN)
    accuracy <- (TP + TN) / sum(conf_matrix)
    F1 <- 2 * (precision * recall) / (precision + recall)
    sensitivity <- recall
    specificity <- TN / (TN + FP)
    negative_predictive_value <- TN / (TN + FN)
    return(     data.frame(
                                          Precision = precision,
                                          Recall = recall,
                                          Accuracy = accuracy,
                                          F1 = F1,
                                          Sensitivity = sensitivity,
                                          Specificity = specificity,
                                          NPV = negative_predictive_value))
   }
library(pander)
pander(metrics(c(0,0,0,1,1),c(0,1,0,0,1)))
Precision Recall Accuracy F1 Sensitivity Specificity NPV
0.5 0.5 0.6 0.5 0.5 0.6667 0.6667
#pander(metrics(c(0,0,0,0,0),c(0,1,0,0,1)))

Groupes déséquilibrés

  • Ne pas utiliser l’accuracy

  • utiliser des metrics combinées (F1 score, AUC, AUPRC)

  • au minimum regarder le rappel

  • utiliser des poids ou de l’over/undersampling

Groupes déséquilibrés

Deep learning

Deep learning vs machine learning

Classical Machine learning

  • Interpretability and explainability
  • Smaller amounts of relatively simple data
  • Straightforward feature engineering
  • Smaller computational power needed
  • Different algorithms 

Deep learning

  • Can achieve very high accuracy
  • Need large amounts of precisely labeled data
  • need powerful compute resources (GPU acceleration)
  • Augmentation and other transformations of the initial dataset will be necessary

Source : softwaretestinghelp.com

Origine

Naissance du perceptron

Du perceptron au deep learning

Plan

  • comment le réseau transforme couche après couche des données en probabilités

  • Qu’est ce qu’une descente de gradient

  • Comment calculer le gradient ?

Couches Denses

Transformation des données : les couches denses

Comment mettre en avant des caractéristiques dans les données ?

Couches denses

Somme pondérée des notes \(x_i^j\) pour chaque étudiant \(i\) : Création d’information

Couches denses

Somme pondérée des notes \(x_i^j\) pour chaque étudiant \(i\) : \(y_i = \sum_{j=1}^{7}{w_jx_i^j}\)

Moyenne de note en langue : \(w=(0,0,0,0.5,0.5,0,0)\)

Couches denses

Différence entre math et info: \(w=(-1,0,-1,0,0,0,0)\)

Couches denses

Somme pondérée des notes \(x_i^j\) avec biais suivi de ReLU :

\[ s_i = b + \sum_{j=1}^7w_jx_i^j\\ y_i = max(0,s_i) \]

Sélection des moyennes supérieures à 10 en sciences : \(w=(0.2,0.2,0.2,0,0,0.2,0.2);b=-10\)

Couches d’activation

Couches denses

Couche dense : perceptron

Couches dense : multiple perceptron

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Descente de gradient

Backpropagation

En plus simple